from flask_restplus import fields

from hzb.common.field import BaseResp

from .. import label_api

# 注册对应的Common类
label_api.models['BaseResp'] = BaseResp


# 请求获取标签数组
LabelGetLabelsReq = label_api.model('LabelGetLabelsReq', {
})

LabelGetLabelsRespItem = label_api.model('LabelGetLabelsRespItem', {
    'label_name': fields.String(required=True, description='标签名'),
    'id': fields.Integer(required=True, description='标签id'),
    'checked': fields.Boolean(required=True, description='当前使用标签'),
    'choose_time': fields.Integer(required=True, description='标签切换时间'),
    'create_time': fields.Integer(required=True, description='标签创建时间')
})

LabelGetLabelsResp = label_api.inherit('LabelGetLabelsResp', BaseResp, {
    'data': fields.List(fields.Nested(LabelGetLabelsRespItem), required=True, description='用户标签组')
})

# 请求改变当前标签
SetLabelsReq = label_api.model('SetLabelsReq', {
    "label_name": fields.String(required=True, description='标签名')
})

SetLabelsResp = label_api.inherit('SetLabelsResp', BaseResp, {
    'choose_time': fields.Integer(required=True, description='标签选中时间')
})

# 新增标签
AddLabelsReq = label_api.model('AddLabelsReq', {
    "label_name": fields.String(required=True, description='新标签名')
})

# 删除标签
DelLabelsReq = label_api.model('DelLabelsReq', {
    "label_names": fields.List(fields.String, required=True, description='新标签名')
})

# 获取24小时内所有记录
Get24TimeLabelsRespItem = label_api.model('Get24TimeLabelsRespItem', {
    "label_name": fields.String(required=True, description='24小时内所有的标签名'),
    "time_string": fields.String(required=True, description='标签创建时间')
})
Get24TimeLabelsResp = label_api.inherit('Get24TimeLabelsResp', BaseResp, {
    "labels": fields.List(fields.Nested(Get24TimeLabelsRespItem), required=True, description='24小时内所有的标签名')
})

# 获取指定时间段内所有记录
GetRecordByTimeReq = label_api.model('GetRecordByTimeReq', {
    "begin_time": fields.Integer(required=True, description='开始时间'),
    "end_time": fields.Integer(required=True, description='结束时间')
})
GetRecordByTimeItem = label_api.model('Get24TimeLabelsRespItem', {
    "name": fields.String(required=True, description='所有的标签名'),
    "value": fields.Integer(required=True, description='各个标签的总时间值')
})
GetRecordByTimeResp = label_api.inherit('GetRecordByTimeResp', BaseResp, {
    "labels": fields.List(fields.Nested(GetRecordByTimeItem), required=True, description='所有的标签')
})

